1. Field of the Invention
This invention relates to end-to-end bidirectional keep-alive techniques using virtual circuits.
2. Description of Related Art
In frame relay networks and some other networking techniques, communication between nodes uses virtual circuits, either permanent virtual circuits (PVCs) or switched virtual circuits (SVCs)
One problem which has arisen in the art is determining whether particular virtual circuits are still operational, or have failed due to one or more communication links in the virtual circuit having failed. Frame relay networks usually include a local management interface (LMI), a management technique for local communication links between nodes and the network. However, information provided by the LMI is limited to the communication links directly between routers and the frame relay network, and does not generally allow nodes to determine if a virtual circuit with a remote node has failed at an intermediate communication link in the frame relay network. Moreover, information provided by the LMI is sometimes unreliable with regard to status of remote links to the frame relay network.
Another problem which has arisen in the art is that of determining congestion for virtual circuits for which communication is primarily unidirectional. For example, multicast video sessions includes a great deal of data which is originated at a single source and transmitted to essentially passive receivers. In frame relay networks, header information in frames provides information regarding congestion within the frame relay network. However, passive receivers generate frames at most infrequently, and thus have little or no opportunity to cause information regarding congestion to be transmitted back to the source in a multicast video session.
Known methods exist, at higher-level protocol layers, for responding to broken or congested network communication, including virtual circuits. However, these known methods operate at higher-level protocol layers, such as an application (level 3) protocol layer in the OSI protocol layer model, and thus can take substantially more time and more resources to respond to a broken virtual circuit than may be desirable, particularly for band-width-intensive applications such as multicast video.
Known methods exist for management of aggregates of virtual circuits. For example, one such method is described in Annex D of specification document T1.617, in Annex A of the specification document ITU Q.933, and in the LMI frame relay specification document. However, this method is operative only for aggregates of virtual circuits, and is not effective for determining if an individual virtual circuit is broken, congested, or otherwise requires remedial action at an intermediate point in the frame relay network.
Accordingly, it would be advantageous to provide techniques for determining whether particular virtual circuits are end-to-end operational, as well as techniques for determining information regarding congestion at nodes which generate infrequent frames. These advantages are achieved by a method and system according to the present invention in which a virtual circuit protocol provides for end-to-end bidirectional keep-alive messages using virtual circuits.
The invention provides a method and system for sending and receiving end-to-end bidirectional keep-alive messages using virtual circuits. Nodes coupled to a network, such as a frame relay network, periodically exchange link-layer xe2x80x9ckeep-alivexe2x80x9d messages which indicate information regarding configuration and status of the virtual circuit, as well as information regarding congestion at sending nodes. Nodes respond to received keep-alive messages, or to timed-out failure to receive keep-alive messages, with follow-on actions, such as attempting to reconnect when a virtual circuit fails. Keep-alive messages can be propagated across multiple networks of either similar or different architecture.
In a preferred embodiment, keep-alive messages include sent and received sequence numbers, thus providing receiving nodes with a technique for determining if any keep-alive messages have been lost. Keep-alive messages can also include information regarding configuration of the virtual circuit and congestion at the sending node.